package com.realtyManage.springboot.Service;

import com.realtyManage.springboot.Model.Do.Jurisdiction;
import com.realtyManage.springboot.Model.Do.User;
import com.realtyManage.springboot.Model.Vo.UserEntity;
import org.springframework.data.domain.Page;
import org.springframework.data.jpa.domain.Specification;

import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;

public interface IUserService {
    List<User> findAll();

    User findById(Integer userId);

    User insert(User user);

    boolean isExistPhone(String phone);

    User getUserByProperty(String phone, String pwd);

    User updateUserInfo(User user);

    Page<User> findPagedByWhereClause(UserEntity entity);

    User findByTelePhone(String phone);

    User getInviteUserByCode(String inviteCode, String inviteCode1);

    User getSuperAdmin();

    User getShopManager(int connShopId, int level, int state);

    int changeShopManager(Integer connShopId, Integer sourceUid);

    List<String> findByNameLike(String upName);

    List<String> findSpecification(Specification specification);

    int countByUpIdAndJoinTimeBetween(Integer uid,Date startTime, Date endTime);

    List<User> findOneAll(String artId,int condition1);

    int countUserUpId(String userId);

    int countCustomerStatus(String userId, String status);

    int setPeriphery(String cd,String id);

    String findByName(Integer userId);

    String findByHouseName(Integer houseId);

    String findBySex(Integer userId);

    List<User> findLevelUserList(String level, String type, HttpServletRequest request);

    int updatePwd(UserEntity userEntity);

    String findRegTime(String uid);

    List<User> distributionJurisdictionList();

    List<User> queryUserNum();

    List<String> getRoleUser(String level);

    List<String> getUserByJurisdiction(String userIds);

    List<Jurisdiction> getJurisdictionList();

    String findQx(String userId);

    int findUserQx(Integer userId,String qx);

    int queryUserId(String userName);

    int updateMyDetail(User user);

    List<User> getReceptionList();

    int verificationUser(String userName);

    List<User> findNotice();

    List<User> findUser();

    List<String> queryStaff();

    User findLoginName(String phone);
}
